package com.woniuxy.java106crm.service;

import com.woniuxy.java106crm.entity.ServiceInvoice;
import com.woniuxy.java106crm.request.ResPage;
import com.woniuxy.java106crm.vo.SearchServiceVo;
import com.woniuxy.java106crm.vo.ServiceInvoiceVo;
import com.woniuxy.java106crm.vo.ServiceTypeCountVo;

import java.util.List;

/**
 * 服务单据
 */
public interface ServiceInvoiceService {
    //创建服务单据
    void addServiceInvoice(ServiceInvoice serviceInvoice);
    //服务分配界面多条件查询所有单据
    ResPage<List<ServiceInvoiceVo>> queryServiceInvoice(SearchServiceVo searchServiceVo);
    //分配服务单据，修改对应单据的状态
    void updateAssignStatus(String id,Integer assigned);
    //服务处理界面根据客户经理id查询状态为已分配的服务单据
    ResPage<List<ServiceInvoiceVo>> queryServiceInvoiceById(SearchServiceVo searchServiceVo);
    //修改客户经理处理的服务单据状态为已处理，填充处理时间字段
    void updateHandleStatus(String id,String handleWay);
    //服务反馈界面根据客户经理id查询状态为已处理的服务单据
    ResPage<List<ServiceInvoiceVo>> queryServiceInvoiceByIdAndStatus(SearchServiceVo searchServiceVo);
    //服务反馈，填充字段mark的评分
    void updateMarks(String id,Integer mark,String content);
    //查询所有已反馈的服务单据
//    ResPage<List<ServiceInvoiceVo>> queryServiceInvoiceByStatus(SearchServiceVo searchServiceVo);
    //修改单据状态为已归档
    void updateStatus(String id);

    ResPage<List<ServiceInvoiceVo>> queryServiceInvoiceByStatus(Integer pageNum, Integer pageSize);

    //客服服务分析根据类型统计
    List<ServiceTypeCountVo> ServiceTypeCount(String year);
}
